#include <stdio.h>

/*
 * Cache相关的知识，这是理解这个问题的关键所在
 */

int array[10240][10240];

int main()
{
    int x, y;

    for (x = 0; x < 10240; x++) {
        for (y = 0; y < 10240; y++)
            array[y][x] = 1234;
    }

    return 0;
}

#if 0

/*
 * 用perf观测性能指标
 */
    对比一下，array1.c的L1-dcache-load-misses率只有3.10%， 而按列访问的array2.c，则达到了惊人的93.03%！
    这就是两者性能差异如此巨大的真相！
    
    Cache是CPU内部最为重要的部件之一，也是影响程序性能的最重要因素之一，但由于各种原因，经常被程序员忽视。
    在进行性能调优时，除了系统架构、算法等方面的考量之外，不妨也从CPU的角度去思考一下，
    比如Cache，有时会对程序性能产生决定性影响。

#endif
